import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import path from "path";
const pathSrc = path.resolve(__dirname, "src");
const publicSrc = path.resolve(__dirname, "public");

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      // 自动导入的钩子
      imports: [
        "vue",
        "vue-router",
        "pinia",
        // 自定义钩子，格式：xx模块：xx钩子
        // {
        //   '@/hooks/modules/hook-global/index':['useGlobalApi']
        // }
      ],
      // 生成自动导入的TS声明文件, 默认路径 ./auto-imports.d.ts
      dts: "./auto-imports.d.ts",
      // 1、改为true用于生成eslint配置
      // 2、生成后改回false，避免重复生成消耗
      // 3、重新npm run dev 会自动生成 .eslintc-auto-import.json
      // 4、手动在.eslintrc中引入
      eslintrc: {
        enabled: true,
      },
    }),
    Components({
      // 指定自动导入的组件位置，默认是 src/components
      // 由于src/components 下的组件会自动引入，所以一般用作全局公共组件
      dirs: ["src/components"],
    }),
  ],
  resolve: {
    alias: {
      "@/": `${pathSrc}/`,
      "public/": `${publicSrc}/`,
    },
  },
  base: "./", // 设置打包路径
  server: {
    port: 4000, // 设置服务启动端口号
    open: false, // 设置服务启动时是否自动打开浏览器
    cors: true, // 允许跨域
    https: false,

    // 设置代理，根据我们项目实际情况配置
    // proxy: {
    //   '/api': {
    //     target: 'http://xxx.xxx.xxx.xxx:8000',
    //     changeOrigin: true,
    //     secure: false,
    //     rewrite: (path) => path.replace('/api/', '/')
    //   }
    // }
  },
  build: {
    terserOptions: {
      compress: {
        // 生产环境去除console debugger
        drop_console: true,
        drop_debugger: true,
      },
    },
  },
});
